﻿using SharpML.Api.Abstraction.Plugin;
using SharpML.Api.Implementation;

namespace SharpML.Api.Interfaces.Plugin
{
    public interface IMLEngine : IPluginComponent, IMLEngineEvents, IFlowControl
    {
        /// <summary>
        /// Prepares the engine for execution of the provided DataAdaptor instance
        /// </summary>
        /// <param name="dataAdaptor"></param>
        void Initialize( ComputationEngine engine, IPatternDataAdaptor dataAdaptor, string shape );

        /// <summary>
        /// Gets the current DataAdaptor instance
        /// </summary>
        IPatternDataAdaptor DataAdaptor { get; }
    }
}
